package org.ssssssss.example.mail;
import com.alibaba.druid.sql.dialect.phoenix.ast.PhoenixStatementImpl;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

 class ReceiveMail {
    //收件人的地址
    public static String recipientAddress="zmjlhc@163.com";
    //收件人的密码
    public static String recipientPassword="JWKKOTYFYPCEGYCE";

    public static void main(String[] args) throws Exception {
        //1.连接邮件服务器的参数配置
        Properties props=new Properties();
        //设置传输协议
        props.setProperty("mail.store.protocol", "pop3");
        //设置收件人的pop3服务器
        props.setProperty("mail.pop3.host", "pop.163.com");//切勿出现空格，不然没用

        //2.创建定义整个应用程序所需的环境信息的Session对象
        Session session=Session.getInstance(props);
        //设置调试信息在控制台打印
        session.setDebug(true);
        Store store = session.getStore("pop3");
        //3.通过session获取接收邮件的实例对象

        //连接收件人的pop3服务器
        store.connect("pop.163.com",recipientAddress, recipientPassword);
        //获得用户的邮件账户，注意通过pop3协议获取某个邮件夹的名称只能为inbox
        Folder folder = store.getFolder("inbox");
        //设置对邮件的访问权限
        folder.open(Folder.READ_WRITE);

        //4.得到邮件账户的所有邮件信息
        Message[] msgs=folder.getMessages();
        //遍历获得每封邮件的信息
        for (int i=0;i<msgs.length;i++){
            //获取邮件主题
            String subject = msgs[i].getSubject();
            //获取发件人
            Address[] from = msgs[i].getFrom();
            //获取邮件内容（包含邮件内容的html代码）
            Object content = msgs[i].getContent();
            //打印邮件内容
            System.out.println(content);
        }

        //5.关闭邮件文件夹对象和连接对象
        folder.close(true);
        store.close();
    }
}
